import axios from '../../src'

/************** URL Params *************/

// 数组
axios({
  method: 'get',
  url: '/base/get',
  params: {
    foo: ['bar', 'baz']
  }
})

// 对象
axios({
  method: 'get',
  url: '/base/get',
  params: {
    foo: {
      bar: 'baz'
    }
  }
})

// 日期
const date = new Date()
axios({
  method: 'get',
  url: '/base/get',
  params: {
    date
  }
})

// 特殊字符
axios({
  method: 'get',
  url: '/base/get',
  params: {
    foo: '@:$, []'
  }
})

// 带 null 的参数
axios({
  method: 'get',
  url: '/base/get',
  params: {
    foo: 'bar',
    baz: null
  }
})

// 带 hash 的地址
axios({
  method: 'get',
  url: '/base/get#hash',
  params: {
    foo: 'bar'
  }
})

// url 带参数
axios({
  method: 'get',
  url: '/base/get?foo=bar',
  params: {
    bar: 'baz'
  }
})


/***************** Request Data *****************/
// Data 是一个普通的对象
axios({
  url: '/base/post',
  method: 'post',
  headers: {
    'Content-Type': 'application/json;charset=utf-8'
  },
  data: {
    a: 1,
    b: 2
  }
})

axios({
  url: '/base/post',
  method: 'post',
  headers: {
    'content-type': 'application/json',
    'accept': 'application/json, text/plain, */*'
  },
  data: {
    a: 1,
    b: 2
  }
})

const paramsString = 'q=food&page=1&size=50'
const searchParams = new URLSearchParams(paramsString)
axios({
  url: '/base/post',
  method: 'post',
  headers: {
    'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
  },
  data: searchParams
})

// Data 是一个 Buffer
const arr = new Int32Array([21, 31])
axios({
  url: '/base/buffer',
  method: 'post',
  data: arr
})

/******************* 接收响应 ********************/
axios({
  url: '/base/post',
  method: 'post',
  data: {
    a: 1, b: 2
  }
}).then(res => {
  console.log(res);
})

// 设置响应类型
axios({
  url: '/base/post',
  method: 'post',
  data: {
    a: 1, b: 2
  },
  responseType: 'json'
}).then(res => {
  console.log(res);
})

